const config = require("./config");
const defaultConfig = require("./default")

// 消息监听回调
module.exports = (bot) => {
  return async function onMessage(msg) {
    // 判断消息来自自己，直接return
    // if (msg.self()) return;
    // 判断公众号消息屏蔽
    if (msg.payload.fromId.search("gh") != -1) return;
    // 消息类型判断
    switch (msg.type()) {
      case 7:
             if (msg.room()) {
              console.log("获取到群聊消息-" , msg);
              if (msg.payload.roomId === defaultConfig.chatRoomId) {
                forwarding(bot,msg,config);
                return;
              }
            }
        break;
      case 9:
        console.log("获取到小程序"); // 测试成功
        break;
      case 14:
        console.log("获取到卡片链接"); // 测试成功
        break;
      default:
        console.log("暂时不支持该类型的接收!");
        break;
    }
  };
};

/**
 * @description 回复群聊信息 处理函数
 * @param {Object} msg 消息对象
 * @return {Promise} true-是 false-不是
 */
// async function roomMessageReply(msg) {
//   const room = msg.room();
//   const text = msg.text();
//   if (await msg.mentionSelf()) {
//     // 获取消息内容，拿到整个消息文本，去掉 @名字
//     const sendText = msg.text().replace("@蔚蓝", "");
//     // 请求机器人接口回复
//     let res = await requestRobot(sendText);
//     // 返回消息，并@来自人 只可以padplus调用
//     // room.say(res, msg.fromId());
//     // 此处替换为群内回话
//     // padlocal使用 msg函数@指定人
//     // 获取@你的群友
//     // let member = msg.talker();
//     // 群聊@群友回复
//     // msg.room().say(response,member);
//     room.say(res);
//   } else {
//     let content = await requestRobot(msg.text());
//     room.say(content);
//     return
//   }
//
//   // 指定关键字触发
//   if (/互动/.test(text)) {
//     room.say("互动测试");
//     return
//   } else if(/彩虹屁/.test(text)){
//     let reply = await rainbowFart(params);
//     room.say(reply);
//     return
//   } else if(/文案/.test(text)){
//     let reply = await circle(params);
//     room.say(reply);
//     return
//   }else if (/蔚蓝工作室/.test(text)) {
//     room.say(new UrlLink(config.personal.introUrl));
//     return
//   } else if(/药品/.test(text)){
//     params.word = text.substring(2);
//     console.log(params);
//     let reply = await drugInstruction(params);
//     room.say(reply);
//     return
//   }
// }


/**
 * @description 回复信息是所管理的群聊名 处理函数
 * @param {Object} bot 实例对象
 * @param {Object} msg 消息对象
 * @param {Object} config 配置文件
 */

async function forwarding(bot,msg,config){
  let ifContainKey = defaultConfig.keyword.some(key => msg.text().indexOf(key) > -1)
  if (ifContainKey) {
    let content;
    let sendText = msg.text();
    let sendName = msg.from().name();
    content =
      "[发送人]: " +
      sendName +
      "\n" +
      "[内容]: " +
      sendText ;
    // 获取转接发消息人
    const contact =  await bot.Contact.find({ name: config.bossName });
    // 将消息转发
    contact.say(content);
  } else {
    return;
  }
}



